package main


import (
	"match-spider/util/boltdb"
	"github.com/boltdb/bolt"
	"fmt"
	"strings"
	"strconv"
	"encoding/json"
	"regexp"
)

/**
主流菠菜公司盘口2.5
赔率在1.5/1.6--2.1/2.2
主队：
主队过去3个相同赛事主场比赛对双方进球数大于等于7球
这3场中大于2.5球的场数大于等于2

客队：
客队过去3个相同赛事主场比赛对双方进球数大于等于7球
这3场中大于2.5球的场数大于等于2
这3场中客队进球数大于等于2
上一场比赛中的双方进球总数大于等于2

近3场比赛不能有0：0

结果：日本赛事，小球
 */

func validateOverunder(data string) bool {
	if strings.Index(data, "澳门") < 0{
		return false
	}
	s := strings.Split(data, "!")

	//赔率在区间范围个数
	numOdds:=0
	//盘口符合的个数
	numScore:=0
	size:=len(s)
	for _, v := range s {
		//ＳＢ^6779217^0.80^1.75^1.02^0.88^2^1.00^

		d := strings.Split(v, "^")

		f1,_:=strconv.ParseFloat(d[3],64)
		f2,_:=strconv.ParseFloat(d[6],64)
		f3,_:=strconv.ParseFloat(d[7],64)
		if f1==2.5&&f2==2.5{
			numScore++
		}
		if f3>=0.5&&f3<=1.2{
			numOdds++
		}

	}

	if numOdds==size&&numScore==size{
		return true
	}
	return false
}
//数据格式1
func validate1(text string,league string,t1 string,t2 string) bool {

	jsonMap:=make(map[string]interface{})
	json.Unmarshal([]byte(text),&jsonMap)
	nearInfo:=jsonMap["NearInfo"].(map[string]interface{})
	guestInfo:=nearInfo["GuestInfo"].([]interface{})
	homeInfo:=nearInfo["HomeInfo"].([]interface{})

	reg, _ := regexp.Compile("\\[[\\S\\s]+?]")

	//开始验证模型

	//主队

	t1= reg.ReplaceAllString(t1, "")
	//客队

	t2= reg.ReplaceAllString(t2, "")
	//主队比赛进球数
	//主队比赛进球数
	score1:=float64(0)
	//客队比赛进球数
	score2:=float64(0)
	//大于2.5球场数
	num2_5_1:=float64(0)
	num2_5_2:=float64(0)
	//客队最近三场进球数
	scoreAll2:=float64(0)
	//客队上一场比赛全场总进球数
	lastMatchScore2:=float64(0)
	index1:=int64(0)
	index2:=int64(0)

	for _,v:=range homeInfo{

		m:=v.(map[string]interface{})

		if m["SclassName"]==league{
			if m["HomeTeam"]==t1&&index1<3{
				//主队
				a:=m["HomeScore"].(float64)
				b:=m["GuestScore"].(float64)

				sall:=a+b
				if sall>=3{
					num2_5_1++
				}
				score1+=sall
				index1++
			}
		}
		if index1>2{
			break
		}
	}
	for _,v:=range guestInfo{

		m:=v.(map[string]interface{})

		if m["SclassName"]==league {
			if m["GuestTeam"] == t2&&index2 < 3 {
				//客队
				a:=m["HomeScore"].(float64)
				b:=m["GuestScore"].(float64)
				sall := a + b
				if sall >= 3 {
					num2_5_2++
				}
				scoreAll2 += b
				score2 += sall
				if index2 == 0 {
					//上一场比赛
					lastMatchScore2 = sall
				}
				index2++
			}
		}
		if index2>2{
			break
		}
	}
	if score1>=7&&num2_5_1>=2&&score2>=7&&num2_5_2>=2&&scoreAll2>=2&&lastMatchScore2>=2{
		return true
	}

	return false
}
//数据格式2
func validate2(text string,league string,t1 string,t2 string) bool {
	s:=strings.Split(text[7:],"$$")[0]
	reg, _ := regexp.Compile("\\[[\\S\\s]+?]")
	matchs:=strings.Split(s,"!")
	//开始验证模型

	//主队

	t1= reg.ReplaceAllString(t1, "")
	//客队

	t2= reg.ReplaceAllString(t2, "")
	//主队比赛进球数
	score1:=int64(0)
	//客队比赛进球数
	score2:=int64(0)
	//大于2.5球场数
	num2_5_1:=int64(0)
	num2_5_2:=int64(0)
	//客队最近三场进球数
	scoreAll2:=int64(0)
	//客队上一场比赛全场总进球数
	lastMatchScore2:=int64(0)
	index1:=int64(0)
	index2:=int64(0)
	for _,v := range matchs {

		m:=strings.Split(v,"^")
		if m[1]==league{

			if m[2]==t1&&index1<3{
				//主队
				a,_:=strconv.ParseInt(m[4],10,64)
				b,_:=strconv.ParseInt(m[5],10,64)
				sall:=a+b
				if sall>=3{
					num2_5_1++
				}
				score1+=sall
				index1++
			}
			if m[3]==t2&&index2<3{
				//客队

				a,_:=strconv.ParseInt(m[4],10,64)
				b,_:=strconv.ParseInt(m[5],10,64)

				sall:=a+b
				if sall>=3{
					num2_5_2++
				}
				scoreAll2+=b
				score2+=sall
				if index2==0{
					//上一场比赛
					lastMatchScore2=sall
				}
				index2++
			}

		}
		if index1>2&&index2>2{
			break
		}
	}
	if score1>=7&&num2_5_1>=2&&score2>=7&&num2_5_2>=2&&scoreAll2>=2&&lastMatchScore2>=2{
		return true
	}
	return false
}
func run(){

	boltdb.ScanTx("asiaOddsDetail", func(tx *bolt.Tx) {

		tx.ForEach(func(name []byte, b *bolt.Bucket) error {
			b.ForEach(func(k, v []byte) error {
				content:=string(v)
				fmt.Println(string(name),string(k),content)
				return nil
			})
			return nil
		})

	})

}
func main()  {
	//matchIn()
	run()
}
